The present invention relates generally to satellite communication systems, and more particularly to a method for adaptive error coding in a processing communication satellite system which optimizes data throughput in accordance with changing signal propagation conditions.
Satellites have long been used to provide communications capabilities on a global scale, allowing various earth terminals to communicate with each other via a satellite relay system. Typically, a satellite includes multiple uplink and downlink antennas, each of which provides communications bandwidth to a large coverage area (or xe2x80x9cfootprintxe2x80x9d) using multiple spot beams. The area covered by a spot beam is often referred to as a xe2x80x9ccellxe2x80x9d.
A sophisticated processing satellite that demodulates and decodes uplink data and then switches that data and re-encodes and re-modulates it on the downlink may be used in the satellite relay system. Typically, a Network Operation Control Center (NOC) is also provided to generate command signals that control the satellite relay system and coordinate assignment of traffic channels in uplinks and downlinks. A typical system employs frequency and time division multiplexing (FDMA/TDMA) on uplinks and time division multiplexing (TDM) on downlinks. However, other multiplexing schemes may readily be used in either of the links.
Because the data sent to and from the satellite is susceptible to significant degradation by, for example, atmospheric conditions such as rain or by satellite antenna pointing error, the data is encoded with error detection and correction codes. Two types of error detection and correction codes are typically used, convolutional codes and block codes. Characteristics of the various techniques, for error control are extensively covered in the literature. In modern satellite communication systems a xe2x80x9cconcatenatedxe2x80x9d set of error detection and correction codes is typically applied to the data. Concatenated coding refers to the sequence of coding in which a second coding operation is performed upon already encoded data. The xe2x80x9couter codexe2x80x9d of the concatenated coding is the first code applied (typically a block code), while the xe2x80x9cinner codexe2x80x9d of the concatenated coding is the second code applied (typically a convolutional code in downlink usage or a short block code in uplink usage).
A block code essentially adds parity bits to each predefined number of bits in a data channel (an information block). In processing satellites, a variety of block codes known as Reed-Solomon codes are typically used to outer encode both the uplink and downlink signals. The block outer encoded data is then further encoded with a convolutional code on the downlink or a short block code on the uplink to reduce the bit error rate (BER) to a tolerable level (the BER is the ratio of incorrectly received information bits to the total number of received information bits). The ratio of the number of information (or data) bits to the number of data bits plus error correction bits is commonly called the xe2x80x9ccode ratexe2x80x9d.
The earth terminals which communicate via the satellite may be separated by a great distance and typically experience different and independent levels of signal degradation. In addition, the gain in the antenna""s footprint and the antenna pointing errors are typically different for each terminal.
Most ground stations, however, do not concurrently experience the worst case signal degradation at any given time. In the past, concatenated error detection and correction codes have been used to achieve performance tailored to the worst-case signal degradation. Thus, in the past, bandwidth has been wasted by over-encoding the uplink and downlink with error correcting data that is not needed by the ground station most of the time. Wasted bandwidth results in inefficient communication, reduced throughput, and lost revenue. Additionally, past systems have failed to provide a simple relationship between changes in coding (or even a simple, effective inner code to replace the convolutional code) that allowed efficient processing on the satellite.
Furthermore, previous terminals continued transmission even when signal conditions deteriorated beyond the correction ability of the strongest error detection and protection code. Again, bandwidth, time, and power are wasted because the receiver cannot accurately decode the data transmitted to it under such conditions. Thus, even systems that change transmitter coding to a lighter or heavier level, such as that illustrated in U.S. Pat. No. 5,699,365 entitled xe2x80x9cApparatus and method for adaptive forward error correction in data communicationsxe2x80x9d by Klayman, allow the transmitters to continue transmitting beyond the ability of the receiver to decode the data.
A need has long existed in the industry for an efficient and effective method for adaptive error coding in a satellite communications system.
It is an object of the present invention to provide an adaptive coding scheme for a processing satellite.
It is another object of the present invention to provide a mechanism by which originating terminals may suspend transmission when their data cannot be reliably decoded by destination terminals and to resume transmission when conditions warrant.
Yet another object of the present invention is to adaptively apply coding either to data transmitted in an uplink from an affected terminal xe2x80x9cAxe2x80x9d, to a corresponding terminal xe2x80x9cBxe2x80x9d, or to data transmitted in the downlink to an affected terminal A which is being relayed from a corresponding terminal B or both, and to do so independently for the uplink from A and the downlink to A and without requiring adaptation of links between the corresponding terminal B and the satellite.
Another object of the present invention is to provide hysteresis between adaptive changes in coding.
Still another object of the present invention is to provide a relationship between coding levels that allows the coded data to be handled efficiently.
One preferred embodiment of the present invention provides a method for adaptive error control coding of data in a downlink. The method includes the steps of receiving at terminal A a first signal containing light coded data transmitted in A""s downlink from the satellite and determining a first data error rate associated with said first signal. When the first data error rate exceeds a first threshold (for example, a light-to-heavy threshold), the method commands the originating terminal B to subsequently select addressing which will result in transmission of heavy coded data in the downlink to A. The heavy coded data has a code rate less than that of the light coded data.
The method also continues to receive at the destination terminal A the first signal containing light coded data in A""s downlink from the satellite and continues to determine the first data error rate associated with the first signal. If and when the first data error rate subsequently falls below a second threshold, the method commands the originating terminal B to subsequently select addressing which will result in transmission of light coded data (i.e., if it was currently transmitting heavy coded data) in the downlink to A.
Furthermore, the method may establish an enter-suspension threshold and determine a second data error rate associated with the heavy coded data. The method may then command each originating terminal B to suspend transmission when the second data error rate exceeds the enter-suspension threshold. Additionally, the method may establish an exit-suspension threshold separated from the enter-suspension threshold by a suspension hysteresis. The method may then command the first originating terminal B to resume transmission when the second data error rate falls below the exit-suspension threshold.
Heavy coded data in the downlink is typically associated with a rate 3/8 inner convolutional code applied at the satellite, while the light coded data in the downlink is typically associated with a rate 3/4 convolutional code. In the uplink from originating terminal B, heavy and light coded data in affected terminal A""s downlink typically results from the addressing used by B and is independent of the light or heavy coding applied by the originating terminal B itself. Preferably, the originating terminal sets an address bit, for example, a bit in a Virtual Path Indicator (VPI) field of an Asynchronous Transfer Mode (ATM) cell, to indicate to the satellite which type of coding to apply on the downlink.
Additionally, the present invention provides a method for adaptive error control coding of data in an uplink based on the power level indicator value at the final amplifier of the originating terminal A. This power level is controlled in a closed loop by command from the satellite to maintain one of two predetermined levels as seen at the satellite depending on whether the heavy code or light code is in use on the uplink. The method includes the steps of sending in an uplink, by an affected terminal A, light coded data addressed to a first destination terminal B and determining a light coded data power indicator value associated with the light coded data. When the light coded data power indicator value exceeds a first threshold, the affected terminal A requests transfer of its uplink to a heavy channel and subsequently sends heavy coded data.
The method further determines a first heavy coded power indicator value, associated, for example, with the heavy coded data transmitted by the affected terminal A. When the heavy coded power indicator value falls below a first threshold, the affected terminal A requests transfer of its uplink to a light channel and subsequently sends light coded data. When the first heavy coded power indicator value exceeds a second threshold, the method suspends transmissions from the affected terminal A. When suspended, however, the affected terminal may continue to transmit synchronization bursts.
In order to send heavy coded data, the method may apply a particular inner code in a concatenated coding scheme, for example, an (8, 4) or (16, 8) block code. Similarly, when sending light coded data, the method may apply a different inner code or no inner code (a xe2x80x9crate 1xe2x80x9d code). Preferably, the code rate of the heavy coded data is half that of the light coded data.